class Person(object):
	def __init__(self,name):
		self._name = name
	@property
	def name(self):
		return self._name
	@name.setter
	def name(self,value):
		if not isinstance(value,str):
			raise TypeError("Expected a str")
		self._name = value
	@name.deleter
	def name(self):
		raise AttributeError("Can't delete attribute")

		
s = Person('Guido')
print(s.name)
s.name = 'shawn'
print(s.name)
s.name = 1
		